package com.medical.data.service.impl;

import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.medical.data.domain.FollowUpFormTemplate;
import com.medical.data.mapper.FollowUpFormTemplateMapper;
import com.medical.data.service.FollowUpFormTemplateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.medical.data.vo.FollowUpFormTemplateVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author cj
 * @since 2024-02-06
 */
@Service
public class FollowUpFormTemplateServiceImpl extends ServiceImpl<FollowUpFormTemplateMapper, FollowUpFormTemplate> implements FollowUpFormTemplateService {

    @Override
    public void createTemplate(FollowUpFormTemplateVo followUpFormTemplateVo) {
        FollowUpFormTemplate followUpFormTemplate = new FollowUpFormTemplate();
        BeanUtils.copyProperties(followUpFormTemplateVo, followUpFormTemplate);
        this.baseMapper.insert(followUpFormTemplate);
    }

    @Override
    public List<FollowUpFormTemplateVo> getTemplateList(String projectId) {
        LambdaUpdateWrapper<FollowUpFormTemplate> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.eq(FollowUpFormTemplate::getProjectId, projectId)
                .eq(FollowUpFormTemplate::getPId, "0");
        List<FollowUpFormTemplate> followUpFormTemplateList = baseMapper.selectList(lambdaUpdateWrapper);

        List<FollowUpFormTemplateVo> followUpFormTemplateVoList = new ArrayList<>();
        for (FollowUpFormTemplate followUpFormTemplate : followUpFormTemplateList) {
            FollowUpFormTemplateVo followUpFormTemplateVo = new FollowUpFormTemplateVo();
            BeanUtils.copyProperties(followUpFormTemplate, followUpFormTemplateVo);
            followUpFormTemplateVoList.add(followUpFormTemplateVo);
        }

        return followUpFormTemplateVoList;
    }

    @Override
    public List<FollowUpFormTemplateVo> getForm(String pId) {
        LambdaUpdateWrapper<FollowUpFormTemplate> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.eq(FollowUpFormTemplate::getPId,pId);
        List<FollowUpFormTemplate> followUpFormTemplateList = baseMapper.selectList(lambdaUpdateWrapper);

        List<FollowUpFormTemplateVo> followUpFormTemplateVoList = new ArrayList<>();
        for (FollowUpFormTemplate followUpFormTemplate : followUpFormTemplateList) {
            FollowUpFormTemplateVo followUpFormTemplateVo = new FollowUpFormTemplateVo();
            BeanUtils.copyProperties(followUpFormTemplate, followUpFormTemplateVo);
            followUpFormTemplateVoList.add(followUpFormTemplateVo);
        }

        return followUpFormTemplateVoList;
    }
}
